package com.ayz.gateway.client;

import lombok.Data;

import java.util.concurrent.TimeUnit;

/**
 * @ClassName GrpcClientConfig
 * @Description TODO: GRPC 客户端的配置参数
 * @Author 快乐的星球
 * @Date 2023/5/21 16:26
 * @Version 1.0
 **/
@Data
public class GrpcClientConfig extends RpcClientConfig{
    /**
     * 线程池核心线程数的大小
     */
    private int threadPoolCoreSize=16;
    /**
     * 线程池最大线程数的大小
     */
    private int threadPoolMaxSize=16;
    /**
     * 工作线程的存活时间
     */
    private long threadPoolKeepAlive=TimeUnit.SECONDS.toMillis(10);
    /**
     * 线程池工作队列的最大大小
     */
    private int threadPoolQueueSize=10000;
    /**
     * 最大入站的消息大小
     * 默认是10M
     */
    private int maxInboundMessageSize=10*1024*1024;
    /**
     * 客户端GRPC长连接心跳任务的周期
     * 默认是6分钟
     */
    private long channelKeepAlive= TimeUnit.MINUTES.toMillis(6);
    /**
     * 客户端GRPC长连接心跳任务的超时时间
     */
    private long channelKeepAliveTimeout=TimeUnit.SECONDS.toMillis(20);
    /**
     * 连接建立后，发送CheckServerRequest请求检测连接是否 双向通达
     * 这个请求的默认超时时间是 3000毫秒
     */
    private long checkServerRequestTimeout=3000L;
}
